#include <cstdio>
#include <string.h>
#include <vector>
#include <algorithm>
using namespace std;
const int N = 1000005;
int n, m, cnt, tot, top, scc, dfn[N], low[N], vis[N], sta[N], S[N], T[N], belong[N];
vector<int> G[2 * N];
void init()
{
    memset(dfn, 0, sizeof(dfn));
    memset(low, 0, sizeof(low));
    memset(vis, 0, sizeof(vis));
    memset(sta, 0, sizeof(sta));
    memset(belong, 0, sizeof(belong));
    cnt = tot = top = scc = 0;
}
void add(int u, int v)
{
    G[u].push_back(v);
}
void tarjan(int u)
{
    dfn[u] = low[u] = ++cnt;
    vis[u] = 1;
    sta[top++] = u;
    for (int i = 0; i < G[u].size(); i++)
    {
        int v = G[u][i];
        if (!dfn[v])
        {
            tarjan(v);
            low[u] = min(low[u], low[v]);
        }
        else if (vis[v])
        {
            low[u] = min(low[u], dfn[v]);
        }
    }
    if (dfn[u] == low[u])
    {
        int t;
        ++scc;
        do
        {
            t = sta[--top];
            vis[t] = 0;
            belong[t] = scc;
        } while (t != u);
    }
}
int main()
{
    scanf("%d%d", &n, &m);
    init();
    for (int i = 0; i < m; i++)
    {
        scanf("%d%d", &S[i], &T[i]);
        if (S[i] > T[i])
            swap(S[i], T[i]);
    }
    for (int i = 0; i < m; i++)
    {
        for (int j = i + 1; j < m; j++)
        {
            if (S[i] < S[j] && S[j] < T[i] && T[i] < T[j] || S[j] < S[i] && S[i] < T[j] && T[j] < T[i])
            {
                add(i, j + m);
                add(j + m, i);
                add(j, i + m);
                add(i + m, j);
            }
        }
    }
    for (int i = 0; i < (m << 1); i++)
    {
        if (!dfn[i])
            tarjan(i);
    }
    for (int i = 0; i < m; i++)
    {
        if (belong[i] == belong[i + m])
        {
            printf("the evil panda is lying again\n");
            return 0;
        }
    }
    printf("panda is telling the truth...\n");
    return 0;
}